// 产品详情页-基本信息模块：包括头图、价格、标题等
define(function(require, exports, module) {
	var $ = require('zepto');
	var iScroll = require('iscroll');

	function JourneyDetail() {
		this.img = '';
	}

	JourneyDetail.prototype.init = function() {
		this.bindEvent();
		this.dealSomething();
		console.debug('行程详情初始化完成');
	}

	JourneyDetail.prototype.visaTabPostion = [];
	JourneyDetail.prototype.refreshVisaTabPosition = function() {
		var self = this;
		self.visaTabPostion = [];
		$.each($('.visaTabWrapper'), function(i, n) {
			self.visaTabPostion.push({
				start: $(n).offset().top,
				height: $(n).height(),
				end: $(n).parents('#visaInfo').offset().top + $(n).parents('#visaInfo').height(),
				el: $(n)
			})
		});
	}

	// 签证的sticky动作 yinqian
	JourneyDetail.prototype.visaTabScrollShow = function(paddingGap, forceHide) {
		if ($('#visaInfo').size() == 0) {
			// 不存在对应操作节点，不执行操作
			return;
		}

		if (this.visaTabPostion.length == 0) {
			this.refreshVisaTabPosition();
		}
		var heightx = $('.title-price').height();
		var heightJourney = $('#journeyDetailTitle').height();

		if (forceHide) {
			$('.visaTabWrapper').removeClass('sticky').css('top', 0);
		} else {
			var temp;
			window.a = this.visaTabPostion;
			for (var i = 0; i < this.visaTabPostion.length; i++) {
				temp = this.visaTabPostion[i];
				// temp.el
				if ($(window).scrollTop() >= temp.start - paddingGap && $(window).scrollTop() < temp.end - temp.height - paddingGap) {
					if (!temp.el.hasClass('sticky')) {
						temp.el.addClass('sticky').css('top', paddingGap);
					}
				} else {
					if (temp.el.hasClass('sticky')) {
						temp.el.removeClass('sticky').css('top', 0);
					}
				}
			};
		}
	}

	JourneyDetail.prototype.bindEvent = function() {
		var self = this;
		// title 的sticky
		var titleTop = $('#journeyDetailTitle').offset().top;
		var heightx = $('.title-price').height();
		var heightJourney = $('#journeyDetailTitle').height();
		window.onscroll = function() {
			if ($(window).scrollTop() >= titleTop - heightx - 50) {
				self.visaTabScrollShow(heightJourney + heightx + 52);
				$('#journeyDetailTitle').addClass('sticky').css('top', heightx + 50);
			} else {
				$('#journeyDetailTitle').removeClass('sticky').css('top', 0);
				self.visaTabScrollShow(heightJourney + heightx + 52, true);
			}


			// 标题的切换
			if ($('.journey-content').size() > 0 && $(window).scrollTop() >= $('.journey-content').offset().top - 92 - heightx) {
				active($('#journeyDesc'));
			}
			if ($('#visaInfo').size() > 0 && $(window).scrollTop() >= $('#visaInfo').offset().top - 92 - heightx) {
				active($('#visaInfoBtn'));
			}
			if ($('#feeTab').size() > 0 && $(window).scrollTop() >= $('#feeTab').offset().top - 92 - heightx) {
				active($('#feeBtn'));
			}
			if ($('#orderNotice').size() > 0 && $(window).scrollTop() >= $('#orderNotice').offset().top - 92 - heightx) {
				active($('#noticeOrder'));
			}
			if ($('#touristDiscuss').size() > 0 && $(window).scrollTop() >= $('#touristDiscuss').offset().top - 92 - heightx) {
				active($('#discusses'));
			}
			if ($('#onlineAsk').size() > 0 && $(window).scrollTop() >= $('#onlineAsk').offset().top - 92 - heightx) {
				active($('#QandA'));
			}
		}

		// 按钮点击后的跳转
		$('#journeyDesc').click(function(e) {
			$(window).scrollTop($('.journey-content').offset().top - 107 - heightx);
			active($(this));
		});

		$('#visaInfoBtn').click(function(e) {
			if ($('#visaInfoBtn').size() > 0) {
				$(window).scrollTop($('#visaInfo').offset().top - 92 - heightx);
				active($(this));
			}
		});

		$('#feeBtn').click(function(e) {
			$(window).scrollTop($('#feeTab').offset().top - 92 - heightx);
			active($(this));
		});

		$('#noticeOrder').click(function(e) {
			$(window).scrollTop($('#orderNotice').offset().top - 92 - heightx);
			active($(this));
		});

		$('#discusses').click(function(e) {
			$(window).scrollTop($('#touristDiscuss').offset().top - 92 - heightx);
			active($(this));
		});

		$('#QandA').click(function(e) {
			if ($('#onlineAsk').size() > 0) {
				$(window).scrollTop($('#onlineAsk').offset().top - 92 - heightx);
			} else {
				window.location = $('#emptyUrl').val();
			}

			active($(this));
		});

		function active(dom) {
			dom.addClass('active');
			dom.siblings().removeClass('active');
		}

		$('.visaTab').delegate('li', 'click', function(e) {
			$(this).addClass('active');
			$(this).siblings().removeClass('active');
			var item = $('.visaTabContent div.content-section:eq(' + $(this).index() + ')', $(this).parents('.visa-tab-container'));
			item.show();
			item.siblings().hide();
			var parent = $(this).parent().parent();
			if (parent.hasClass('sticky')) {
				// 悬浮
				$(window).scrollTop(item.offset().top - 90 - parent.height() - heightx);
			} else {
				// 非悬浮，不改变scrolltop
			}
			self.refreshVisaTabPosition();
		});

		$('.visa-tab-placeholder').each(function(i, n) {
			$(n).css('height', $(n).height());
		});

		$('#journeyTab').delegate('li:not(.exception)', 'click', function(e) {
			$(this).addClass('active');
			$(this).siblings().removeClass('active');
			var letter = $(this).attr('data-letter');
			$('#content' + letter).show();
			$('#content' + letter).siblings('div.tab-content').hide();
			var imgUrl = $('#content' + letter + ' .img-node').attr('data-src');
			if (imgUrl) {
				var img = $('<img src="' + imgUrl + '" />');
				img.on('load', function() {
					$('#content' + letter + ' .img-node').html('<img src="' + imgUrl + '" alt="' + letter + '行程" />').removeAttr('data-src');
					self.refreshVisaTabPosition();
				});
			}
			setTimeout(function() {
				self.refreshVisaTabPosition();
			}, 0);
		});
		if ($('.img-node:visible').length) {
			$.each($('.img-node'), function(i, n) {
				var imgUrl = $(n).attr('data-src');
				if (imgUrl) {
					var img = $('<img src="' + imgUrl + '" />');
					img.on('load', function() {
						$(n).html('<img src="' + imgUrl + '" alt="' + $(n).parents('.tab-content').attr('id').replace('content', '') + '行程" />').removeAttr('data-src');
					});
				}
			});
		}
	}

	JourneyDetail.prototype.dealSomething = function() {
		if ($('#journeyTabWrapper').size() > 0) {
			this.journeyTabWrapperScroll = new iScroll('journeyTabWrapper', {
				hideScrollbar: true,
				checkDOMChanges: true,
				vScroll: false
			});
			$('#journeyTab').width(68 * $('#journeyTab li').length + 20);
		}


		// 当行程详情里的小球内文字（如”D12“）的字符串长度为3时，减少字号
		$('.ball span').each(function(i, n) {
			if ($(n).text().length > 2) {
				$(n).css({
					'font-size': '1.3rem',
					'margin-top': '2px',
					'margin-left': '3px'
				});
			}
		});
	}

	module.exports = JourneyDetail;
});